1. Field of the Invention
The present invention relates to a technology for diagnosing a central processing unit (CPU) in an information processing apparatus.
2. Description of the Related Art
There has been known an information processing apparatus that makes self-diagnosis of its electric or electronic units at the time of the start-up. Upon detecting a malfunctioning unit, the information processing apparatus either starts up after disconnecting the malfunctioning unit or stops the start-up process. Thus, a situation that an information processing apparatus with a malfunctioning unit is activated is prevented from occurring, which increases reliability of the information processing apparatus.
The typical self-diagnosis process is required to be performed exclusively for common resources; and therefore, it is necessary to perform an exclusive process before making diagnosis of a common resource that is shared by a plurality of devices is made. For example, if a main memory is shared by a plurality of central processing units (CPUs) in a multiprocessor system, it is necessary to make diagnosis of the main memory exclusively by a single CPU or a plurality of cooperative CPUs.
A method that is generally used to diagnose a main memory includes writing a plurality of test patterns in the main memory, reading the test pattern from the main memory, and checking whether the read test pattern is the same as the written test pattern. In this method, however, if a plurality of CPUs simultaneously makes diagnosis of the same main memory, one of the CPUs may overwrite a test pattern on a test pattern that has been previously written by another CPU. As a result, a wrong result of diagnosis is obtained. To prevent this, the diagnosis should be performed exclusively by a single CPU or a plurality of cooperative CPUs.
Japanese Patent Application Laid-open No. H2-311950 discloses a conventional technology of making, by a single CPU, diagnosis of a storage device that is shared by a plurality of CPUs within a short time. In this technology, another CPU is caused to perform a diagnosis if a malfunction occurs in the CPU that is originally in-charge of the diagnosis.
Multi-core CPUs, i.e., CPUs including a plurality of CPU cores on a single die have been widely used with the development of process technologies. Some advanced multi-core CPUs include CPU cores that are not just placed on a single die but they share a cache. Such advanced multi-core CPUs can perform high-speed interaction between the CPUs, thereby achieving higher performance.
Moreover, there have been developed still advanced multi-core CPUs in which a plurality of CPUs is virtually produced from a single CPU by applying a multi-thread technology to the CPU cores. The still advanced CPUs exhibit excellent performance in executing a plurality of programs in parallel.
To operate an information processing apparatus including such advanced multi-core CPUs in a stable manner, it is necessary to make diagnosis of the CPU cores and a common resource including a cache that is shared by the CPU cores during the start-up. It is necessary to make such a diagnosis exclusively. However, the conventional self-diagnosis technology disclosed in Japanese Patent Application Laid-open No. H2-311950 can not perform a proper exclusive process, because it does not take into consideration the possibility of existence of a common resource inside the CPUs. As a result, diagnosis of the common resource can not be made correctly.